package lambda03;

import org.junit.Test;

/**
 * 二.简略格式
 *   a.(参数名)->{语句1;语句2;...} //()中可以省略参数类型,因为Lambda可以根据代码自动推断类型
 *   b.参数名->{语句1;语句2;...}//当接口中的抽象方法的形参只有一个的时候,Lambda表达式可以省略()
 *   c.(参数类型1 参数名1,参数类型2 参数名2,....)-> 语句; //当重写接口中的抽象方法只有一条语句的时候,我们可以省略{}
 *                                                  //省略{}的同时,也要省略return和;
 */
public class LambdaDemo04 {

	@Test
	public void test01() {
		method("你好",(str)->{
			System.out.println(str);
		});

		method02(4,19,(a,b)->{return a+b;});
	}

	@Test
	public void test02() {
		method("大家好",str->{
			System.out.println(str);
		});
	}

	@Test
	public void test03() {
		method("张三丰", str -> System.out.println(str));
		method02(9, 12, (a, b) -> a + b);
	}
	public void  method(String str,Printer p) {
		p.print(str);
	}

	public void method02(int a,int b,Calculator c) {
		int sum = c.getSum(a, b);
		System.out.println(sum);
	}
}
